package case5

import "fmt"

/** 接口示例5

1. 实现多个接口
*/

// 实现多个接口 示例
func case1() {
	p11 := person{"小明", 12}

	var study1 studyAction = p11
	study1.recitation()
	study1.write()
	study1.exam()

	var base1 baseAction = p11
	base1.walk()
	base1.eat()
	base1.speak()
}

func Test() {

	// 实现多个接口
	case1()
}

// 定义学习行为接口
type studyAction interface {
	recitation() //朗读
	write()      //写字
	exam()       //考试
}

// 定义基本行为接口
type baseAction interface {
	speak() //说话
	eat()   //吃饭
	walk()  //走路
}

type person struct {
	name string
	age  int
}

func (p person) recitation() {
	fmt.Println("学习行为，朗读，", p.name)
}
func (p person) write() {
	fmt.Println("学习行为，写字，", p.name)
}
func (p person) exam() {
	fmt.Println("学习行为，考试，", p.name)
}

func (p person) speak() {
	fmt.Println("基本行为，说话，", p.name)
}
func (p person) eat() {
	fmt.Println("基本行为，吃饭，", p.name)
}
func (p person) walk() {
	fmt.Println("基本行为，走路，", p.name)
}
